package com.whfc.wxmp.api.base.service;

import com.whfc.common.result.ListData;
import com.whfc.emp.dto.AppCorpGroupDTO;
import com.whfc.emp.dto.AppEmpDTO;
import com.whfc.emp.dto.AppGroupDTO;
import com.whfc.fuum.dto.AppCorpDTO;
import com.whfc.fuum.dto.SysDeptDTO;
import com.whfc.fuum.dto.SysMachListDTO;
import com.whfc.fuum.dto.SysWorkAreaDTO;
import com.whfc.fuum.entity.WxUser;

import java.util.List;

/**
 * @Description:
 * @author: xugcheng
 * @version: 1.0
 * @date: 2019/8/1 10:06
 */
public interface WxOptionService {

    /**
     * 查询当前用户可以查看的所有项目
     *
     * @param wxUser
     * @return
     */
    List<SysDeptDTO> getProjectList(WxUser wxUser);

    /**
     * 查询用户所选项目下的组织机构
     *
     * @param wxUser
     * @param deptId
     * @return
     */
    List<SysDeptDTO> getDeptList(WxUser wxUser, Integer deptId);

    /**
     * 获取当前用户能看到的所有合作单位
     *
     * @param deptId
     * @return
     */
    ListData<AppCorpDTO> corpList(Integer deptId);

    /**
     * 获取班组列表
     *
     * @param deptId
     * @return
     */
    ListData<AppGroupDTO> groupList(Integer deptId);


    /**
     * 获取可供选择的人员列表
     *
     * @param deptId
     * @return
     */
    ListData<AppEmpDTO> getEmpList(Integer deptId);

    /**
     * 获取可供选择的设备类型列表
     *
     * @return
     */
    ListData<SysMachListDTO> machTypeList(Integer machTypeId);

    /**
     * 获取工区列表
     *
     * @param deptId
     * @return
     */
    ListData<SysWorkAreaDTO> getWorkAreaList(Integer deptId);

    /**
     * 获取合作单位以及班组列表
     *
     * @param deptId
     * @return
     */
    List<AppCorpGroupDTO> corpGroupList(Integer deptId);
}
